package com.eshore.norm.pojo.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 浮动IP列表
 * </p>
 *
 * @author chenjl
 * @since 2024-01-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class NormFloatingip implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 资源池id
     */
    @ApiModelProperty(value = "资源池id")
    private Long configId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateDate;

    /**
     * 浮动IP地址的ID。
     */
    @ApiModelProperty(value = "浮动IP地址的ID")
    private String floatingipId;

    /**
     * 浮动IP对应的路由器的ID。
     */
    @ApiModelProperty(value = "浮动IP对应的路由器的ID")
    private String routerId;

    /**
     * 浮动IP的状态。值可以是"ACTIVE"、"DOWN"或"ERROR"。
     */
    @ApiModelProperty(value = "浮动IP的状态")
    private String status;

    /**
     * 项目的ID。
     */
    @ApiModelProperty(value = "项目的ID")
    private String tenantId;

    /**
     * 项目的ID。
     */
    @ApiModelProperty(value = "项目的ID")
    private String projectId;

    /**
     * 资源创建的时间（使用UTC ISO8601格式）。
     */
    @ApiModelProperty(value = "资源创建的时间")
    private String createdAt;

    /**
     * 资源创建的时间（使用UTC ISO8601格式）。
     */
    @ApiModelProperty(value = "资源创建的时间")
    private String updatedAt;

    /**
     * 资源的修订号。
     */
    @ApiModelProperty(value = "资源的修订号")
    private Integer revisionNumber;

    /**
     * 资源的可读描述。
     */
    @ApiModelProperty(value = "资源的可读描述")
    private String description;

    /**
     * 如果启用了"floating-ip-distributed"扩展，"true"表示分布式浮动IP可用。
     */
    @ApiModelProperty(value = "如果启用了\"floating-ip-distributed\"扩展，\"true\"表示分布式浮动IP可用")
    private Boolean distributed;

    /**
     * 有效的DNS域。
     */
    @ApiModelProperty(value = "有效的DNS域")
    private String dnsDomain;

    /**
     * 有效的DNS名称。
     */
    @ApiModelProperty(value = "有效的DNS名称")
    private String dnsName;

    /**
     * 与此浮动IP关联的端口的信息。特别地，如果浮动IP与一个端口关联，该字段包含关联端口的某些属性，包括"name"、"network_id"、"mac_address"、"admin_state_up"、"status"、"device_id"和"device_owner"。如果浮动IP没有与端口关联，该字段为null。
     */
    @ApiModelProperty(value = "与此浮动IP关联的端口的信息")
    private String portDetails;

    /**
     * 浮动IP所连接网络的QoS策略的ID。
     */
    @ApiModelProperty(value = "浮动IP所连接网络的QoS策略的ID")
    private String qosNetworkPolicyId;

    /**
     * 与浮动IP关联的QoS策略的ID。
     */
    @ApiModelProperty(value = "与浮动IP关联的QoS策略的ID")
    private String qosPolicyId;

    /**
     * 与浮动IP关联的网络的ID。
     */
    @ApiModelProperty(value = "与浮动IP关联的网络的ID")
    private String floatingNetworkId;

    /**
     * 与浮动IP地址关联的固定IP地址。
     */
    @ApiModelProperty(value = "与浮动IP地址关联的固定IP地址")
    private String fixedIpAddress;

    /**
     * 浮动IP地址。
     */
    @ApiModelProperty(value = "浮动IP地址")
    private String floatingIpAddress;

    /**
     * 与浮动IP关联的端口的ID。
     */
    @ApiModelProperty(value = "与浮动IP关联的端口的ID")
    private String portId;


}
